package com.bestcem.xm.txtanls.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.txtanls.controller.vo.DownloadRecordVO;
import com.bestcem.xm.txtanls.grpc.service.param.record.DownloadRecordParam;
import com.bestcem.xm.txtanls.grpc.service.param.record.ListRecordParam;
import com.bestcem.xm.txtanls.grpc.service.param.record.RecordTopicRelationParam;
import com.bestcem.xm.txtanls.service.dto.record.DownloadRecordDTO;
import com.bestcem.xm.txtanls.service.dto.record.ListRecordDTO;
import com.bestcem.xm.txtanls.service.dto.record.RecordTopicRelationDTO;

import java.time.LocalDateTime;

/**
 * 原话相关方法
 *
 * @author liheng
 * @version v1.0
 * @date 2021/5/10-17:24
 */
public interface RecordService {


    /**
     * 获取话题与原话的关联信息
     *
     * @param param 文本分析项目id，分析字段id，时间区间
     * @return
     * @author liheng
     * @date 2021/5/14 14:52
     */
    ServiceResult<RecordTopicRelationDTO> getRecordTopicRelation(RecordTopicRelationParam param);


    /**
     * 查询已有原话记录中的最大时间
     *
     * @param projectId 文本分析项目id
     * @return 最大的recordTime
     * @author liheng
     * @date 2021/5/18 9:50
     */
    ServiceResult<LocalDateTime> getRecordMaxTime(String projectId);


    /**
     * 分页查询原话记录
     *
     * @param param
     * @return
     * @author liheng
     * @date 2021/5/18 14:25
     */
    ServiceResult<ListRecordDTO> listRecord(ListRecordParam param);

    /**
     * 导出原话记录
     *
     * @param downloadRecordParam
     * @return
     * @author liheng
     * @date 2021/5/19 16:51
     */
    ServiceResult<DownloadRecordDTO> downloadRecord(DownloadRecordParam downloadRecordParam);


//    /**
//     * 获取导出原话数据
//     * @param downloadRecordParam
//     * @return
//     */
//    ServiceResult<DownloadRecordDTO> listDataForDownload(DownloadRecordParam downloadRecordParam);
//
//
//
//
    /**
     * 导出原话记录for https
     * @version v1.0
     * @param downloadRecordParam
     * @return ServiceResult<DownloadRecordParam>
     * @author gy.liu
     * @date 2021/8/5
     */
    ServiceResult<DownloadRecordVO> downloadRecordForHttp(DownloadRecordParam downloadRecordParam);
}
